<?
class DBMySql{
	
	// Dados para conexao com banco de dados
	private $host = "%{host}";
	private $banco = "%{banco}";
	private $usuario = "%{usuario}";
	private $senha = "%{senha}";

	// Atributo que guarda a conexao com o banco de dados
	private $conexao;

	// Atributos de controle dos registros
	private $registros = null;
	private $registroAtual = -1;
	private $totalRegistros = 0;

	public function __construct(){
		$this->conectar();
	}

	public function conectar(){
		$this->conexao = mysql_pconnect($this->host, $this->usuario, $this->senha);

		if(!$this->conexao){
			return false;
		}else{
			if($this->banco != ""){
				if($this->selecionarBanco()){
				    return true;
				}else{
                	return false;
				}
			}else{
		    	return true;
			}
		}
	}

	public function selecionarBanco(){
		if(mysql_select_db($this->banco, $this->conexao)){
			return true;
		}else{
			return false;
		}
	}

	// Retorna o numero de registros encontrados. Deve ser usado com SELECT
	public function consultar($sql){
    	$resultado = mysql_query($sql, $this->conexao);
		while($linha = mysql_fetch_array($resultado)){
			$this->registros[] = $linha;
		}
		$this->totalRegistros = mysql_num_rows($resultado);
		return $this->totalRegistros;
	}

	// Apenas define a posicao no array de registros
	public function proximo(){
    	if(count($this->registros) < 0){
        	return false;
		}else{
			$this->registroAtual++;
			if($this->registroAtual == $this->totalRegistros){
				$this->registroAtual = -1;
				return false;
			}else{
				return true;
			}
		}
	}

	// Retorna o valor de um campo do registro atual
	public function get($campo){
		return $this->registros[$this->registroAtual][$campo];
	}
	
	// Retorna o numero de linhas afetadas. Deve ser usado com INSERT, UPDATE, DELETE
	public function executar($sql){
    	$resultado = mysql_query($sql, $this->conexao);
		return mysql_affected_rows($this->conexao);
	}
	
	public function getTotalRegistros(){
		return $this->totalRegistros; 	
	}
	
}
?>